package com.baozhun.mall.common.util.eventbus

import org.greenrobot.eventbus.EventBus


/**
 * EventBus注册与解除注册工具类
 *
 * @author xuefeng.zhu
 * @version 2.24.8
 * @since 2023.7.5
 */
object EventBusUtils {
    /**
     * 注册eventBus
     *
     * @param subscriber 注册载体
     */
    fun register(subscriber: Any?) {
        if (!EventBus.getDefault().isRegistered(subscriber)) {
            EventBus.getDefault().register(subscriber)
        }
    }

    /**
     * 取消注册
     *
     * @param subscriber 注册载体
     */
    fun unregister(subscriber: Any?) {
        if (EventBus.getDefault().isRegistered(subscriber)) {
            EventBus.getDefault().unregister(subscriber)
        }
    }

    /**
     * 发送一个普通事件
     *
     * @param event 事件编码
     * @param data 要发送的数据
     */
    fun sendEvent(eventCode: Int, data: Any? = null) {
        EventBus.getDefault().post(EventMessage(eventCode, data))
    }

    /**
     * 发送一个粘性事件
     *
     * @param event 事件编码
     */
    fun sendStickyEvent(eventCode: Int, data: Any? = null) {
        EventBus.getDefault().postSticky(EventMessage(eventCode, data))
    }
}